1. Field of the Invention
The present invention relates generally to a system and methodology for improved exchange of objects (e.g., files, such as digital photographs) between a client device (e.g., digital camera) and a multitude of disparate host devices, for instance, upon connection of the client device to one or more different host devices.
2. Description of the Background Art
Today, digital imaging, in the form of digital cameras, is a prevalent reality that affords a new way to capture photos using a solid state image sensor instead of traditional film. A digital camera functions by recording incoming light on some sort of sensing mechanisms and then processes that information (basically, through analog-to-digital conversion) to create a memory image of the target picture. A digital camera's biggest advantage is that it creates images digitally, thus enabling the transfer of these images between all kinds of devices and applications. For instance, one can easily insert digital images into word processing documents, send them by e-mail to friends, or post them on a Web site where anyone in the world can see them. Additionally, one can use photo-editing software to manipulate digital images to improve or alter them. Digital cameras also provide immediate access to one's images, thus avoiding the hassle and delay of film processing. All told, digital photography is becoming increasingly popular because of the flexibility it gives the user when he or she wants to use or distribute an image.
Several other different types of information content may also be captured digitally through use of various recording or capturing devices. In addition to digital photographic images, other examples of digital media include digital video, digital audio, and various types of multi-media content. Examples of media capture devices include digital audio recorders, digital video recorders, and digital cameras. Typically, once information content is captured, it is then transmitted or “uploaded” to another host device, such as a server computer. For example, in the case of digital audio, a user may wish to transmit dictation captured on a wireless handheld device to a remote host device to facilitate storing, editing, printing, and sharing this information. Such transfers may be accomplished through a number of different wireless or wireline transmission means, including cable connection to a uniform serial bus (USB), wireless connection via infrared, or wireless connection through a device such as a cellular telephone. However, several problems exist with the transfer of information content from the media capture device to a second device.
The bandwidth limitations of today's wireless networks present one set of problems. Currently, wireless networks employ TCP/IP over communication networks supporting a transmission rate of only 9600 baud. This yields an effective throughput of only about 1 K (kilobytes) per minute. At such poor effective throughput rates, existing wireless networks pose a substantial bottleneck for the transmission of digital information content. For instance, a digital photographic image of 600 K may require several minutes to transmit. A relatively small MP3 audio file, say at 2 M (megabytes), would take much longer. The problem is also compounded by other limitations in existing wireless systems. In these systems often a “call” (i.e., session) will be lost (i.e., prematurely terminated). Practically all cellular phone users have experienced firsthand the annoying experience of having a cellular phone call dropped in the middle of a conversation. By the very nature that wireless systems are mobile, wireless calls are often dropped due to natural or physical obstructions, such as interference from mountains. At other times, however, a call may be dropped simply due to unreliability in the underlying cellular phone network.
Regardless of the cause of a user's session being prematurely terminated, a user transmitting information is often forced to not only re-establish communication, but also resend the entire contents that were in process of being transmitted, since most systems treat information content on a per-item basis. If a wireless call is lost during transmission of a digital image, for instance, most wireless systems require retransmission of the entire digital image, as each image is treated as a single unit. This retransmission problem is by no means limited to wireless systems. For example, when uploading a photographic image using a modem, any loss of the connection will result in the user having to completely retransmit the photo, despite the fact that the user may have previously uploaded a substantial portion of that very same photo.
Another problem, in the case of a transfer of information from a portable device, is that in most cases no mechanism is provided to enable the user to confirm that an effective connection to a server has been established and that information is, in fact, being transferred. For example, a user transmitting a digital photo to a remote server computer needs to be able to determine that a reliable connection has been established to the server. The user also requires a way to receive notification that the transfer is being successfully completed or, alternatively, that some problem has been encountered.
Current systems either provide very limited feedback to the user or, alternatively, require dedicated software or interface modules to enable the user to receive feedback regarding the transfer of information from a portable device to the remote device. Certain systems provide some rudimentary feedback about the transfer, such as indicating that the transfer process timed out or that a connection could not be established or was terminated. However, this feedback is typically limited to informing the user that the connection was not available or was dropped, without providing any further information about the problem or the status of the transfer of information. For example, telling the user that a connection has dropped does not let him or her know whether or not part of the information was successfully transferred.
A number of current systems provide more complete transfer functionality and feedback through software running on the server, but this requires the user to be in physical proximity to the server to monitor the transfer. This is not a practical solution when the server is remote, such as in the case of a wireless transfer or in the case involving a connection through another intermediary “pipeline” device.
Take, for instance, the transfer of digital images from a digital camera through a cellular telephone to a larger device. In this case, the cellular telephone is serving as a pipeline device from the digital camera to a server or network. Many pipeline devices do not have the capability of running additional software or otherwise providing an interface to facilitate the transfer and provide feedback to the user. Moreover, even if a pipeline device does have the necessary capabilities, the process of installing and operating additional software on this type of pipeline device is a burden for the user. Requiring installation and operation of additional software increases the complexity of performing the transfer, and also increases the chance of problems or errors being encountered. Another possible solution, pre-installation of an appropriate transfer interface into the cellular phone as part of the phone manufacturing process, requires cooperation and agreement on interoperability standards by various phone manufacturers. This is difficult to achieve and, even if achieved, would not address the large number of cellular phones already in use.
For these reasons, among others, it is preferable that the pipeline device not be required to run additional software or otherwise implement a particular interface to facilitate the transfer of digital information over the pipeline device. If the necessary transfer routines and user interface are provided on the media capture device, then the pipeline device only has to serve as a pipeline (as well as performing its other standard functions such as placing and receiving phone calls).
In the case of transfer of information from a media or data capture device, such as a digital camera, to a larger device or network, there is a requirement for an effective mechanism enabling a user to verify that a connection has been established and that information is, in fact, being transferred. The user also requires a way to receive notification that the transfer is being successfully completed or, alternatively, that some problem has been encountered. Ideally, this mechanism should be easy to use and should be implemented on the media capture device, so that installation of additional software or interface functionality on the pipeline device would not be required. The present invention fulfills these and other needs.